/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.supermercado.business;

import com.supermercado.entities.Cliente;
import com.supermercado.utils.ResultadoOperacion;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author WIL
 */
@Stateless
public class ClienteEJB implements ClienteEJBLocal {

    @PersistenceContext(unitName = "Supermercado-ejbPU")
    private EntityManager em;

    @Override
    public ResultadoOperacion crearCliente(Cliente clienteNew) {
        ResultadoOperacion resultadoOperacion = new ResultadoOperacion(true);
        try {
            if (buscarNumDocumento(clienteNew.getNumeroDocumento()) == null) {
                em.persist(clienteNew);
            } else {
                resultadoOperacion.setResultado(false);
                resultadoOperacion.setError("El numero de documento ya se encuentra registrado");
            }
            return resultadoOperacion;
        } catch (Exception e) {
            resultadoOperacion.setResultado(false);
            resultadoOperacion.setError("Ocurrio un error guardando el cliente");
            return resultadoOperacion;
        }
    }

    @Override
    public Cliente buscarNumDocumento(Integer numeroDocumento) {
        Cliente resultCliente = null;
        try {
            if (numeroDocumento != null) {
                resultCliente = (Cliente) em.createNamedQuery("Cliente.findByNumeroDocumento").setParameter("numeroDocumento", numeroDocumento).getSingleResult();
            } else {
                return null;
            }
        } catch (Exception e) {
            return null;
        }
        return resultCliente;
    }

}
